iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
0
AI & Data

時間管理大師-時間序列分析終極密技系列 第 6

[Day6]流年似水-python終極指南:帶你的程式飛天遁地,流程控制精隨

  • 分享至 

  • xImage
  •  

今天我們要來關心程式的流程控制,資訊人有句名言,程式只有三種結構,循序、選擇和重複,因此只要掌握本日的教學,只要肯花時間,有耐心,邏輯清晰,高EQ,保持快樂心情和健康的生活習慣,先不論程式開發的架構,理論上90%程式都能開發,讓我們來開始吧~

強迫在座的工程師美化版面-縮排

縮排,相信已經有不少同學都非常清楚他的重要性,縮排可以使程式碼的區塊更加明顯,可提高程式碼的可讀性,有鑑於python的開發宗旨為『優雅的開發程式碼』,因此我們python的使用者也必須遵循『優雅的開發程式碼』這個信條,因此python有別於其他語言的特色就是,python是用空格縮排劃分程式碼區塊,而不使用大括號{}或者保留字(start、end if),這就是python「優雅」、「明確」、「簡單」的設計哲學,以下將會以程式碼實際示範。

循序結構

顧名思義,程式會按照順逐行執行,這是最單純的結構,範例如下:

a = 10
a += 1
print(a)
# 印出 11

選擇結構

選擇結構就是從數個程式區塊中選一個區塊來執行,所使用的保留字為if,所屬if區塊的程式碼都要縮排,結構如下:

符合條件就執行 if...

程式碼...
程式碼...
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就不執行if區塊內程式碼
if 判斷式:
    # 在以下的程式碼都屬於if區塊,皆要縮排
    程式碼...
    程式碼...
    程式碼...
# 在以下的程式碼沒有縮排,if區塊到此結束
程式碼...
程式碼...

實際操做如下:

score = 75
if score < 60:
    print("不及格")
if score >= 60:
    print("及格")
    
# 印出 "及格"

二選一的情況 if ... else ...

if區塊不執行,就執行else區塊,兩個區塊必定會執行一塊

程式碼...
程式碼...
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就執行else區塊內程式碼
if 判斷式:
    # 在以下的程式碼都屬於if區塊,皆要縮排
    程式碼...
    # if區塊到此結束
else:
    # 在以下的程式碼都屬於else區塊,皆要縮排
    程式碼...
    # else區塊到此結束
程式碼...

實際操做如下:

score = 75
if score < 60:
    print("不及格")
else:
    print("及格")
    
# 印出 "及格"

多選一的情況 if ... elif ...else...

if的判斷式為True,則只執行if區塊的程式碼,要是if的判斷式為False,就判斷下個elif的判斷式,當elif的判斷式為True,則只執行elif區塊的程式碼,要是所有判斷式False,最後就執行else區塊

程式碼...
程式碼...
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就往下接著判斷elif
if 判斷式:
    # 在以下的程式碼都屬於if區塊,皆要縮排
    程式碼...
    # if區塊到此結束
# 如果下面判斷式的結果為True,則執行if區塊內程式碼,如果判斷式的結果為False,就往下接著判斷elif
elif 判斷式:
    # 在以下的程式碼都屬於elif區塊,皆要縮排
    程式碼...
    # elif區塊到此結束
# 當所有判斷皆為False,則執行else區塊
else:
    # 在以下的程式碼都屬於else區塊,皆要縮排
    程式碼...
    # else區塊到此結束
程式碼...

實際操做如下:

score = 55
if score >= 80:
    print("優等")
elif score < 80 and score >= 60:
    print("及格")
elif score < 60 and score >= 40:
    print("補考")
else:
    print("當掉")
    
# 印出 "補考"

重複結構

需要重複執行的程式區塊,俗稱迴圈用法如下

不知道要明確執行次數的迴圈 while loop

while 布林值:
	#若布林值為True則執行
	程式碼...
	程式碼…
	#回到迴圈上方,若布林值為True,則再往下執行
    #若布林值為False,則離開迴圈

實際操做如下

a = 0
while a<10:
    a = a + 1
# 當a被加1加到不再小於10的時候離開迴圈

知道要執行幾次的迴圈 for loop

for 變數 in 列表:
	將列表中的項目
   逐一放到變數中
   逐一往下處理

實際操做如下

s = 0
for i in [1, 10, 100, 1000, 10000]:
   s += i
print(s)
# 印出 11111

用來控制迴圈的保留字 break、continue

break 用來強制離開迴圈

當迴圈執行到break時,直接離開迴圈,用法如下

for 變數 in 列表
	…	
	break
	…
   
while 布林值:
	…
	break
	…

實際操做如下

s = 0
for i in [1, 10, 100, 1000, 10000]:
   if i > 100:
       break
   s += i
print(s)
# 因為當1000被放入i並執行迴圈時,i大於1000,因此進入if區塊,在if區塊內遇到break,所以離開迴圈,印出 111

continue 強制進入下一圈

當迴圈執行到continue時,直接進入下一圈迴圈,用法如下

for 變數 in 列表:
	…
	continue
	…

while 布林值:
	…
	continue
	…

實際操做如下

s = 0
for i in [1, 10, 100, 1000, 10000]:
   if i == 100:
       continue
   s += i
print(s)
# 因為當100被放入i並執行迴圈時,i等於100,因此進入if區塊,在if區塊內遇到continue,所以停止往下執行,直接進入下一圈迴圈,印出 11011

上一篇
[Day5]壓縮時間,提升效益-python終極指南:運算妙術,九曲八陣
下一篇
[Day7]光陰易逝,豈容我怠-python終極指南:模組化的開發,副程式
系列文
時間管理大師-時間序列分析終極密技30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言